import { requestOpen as request } from '@/utils/request'
const { get, post, put, del: _del } = request
const serve = '/leads'

// 所有公海列表
export function getSeaList() {
  return request({
    url: '/sea/manager/list',
    method: 'get',
  })
}
// 公海线索列表
/**
 *
 * @param {*} params
{
  name,string,false,,,线索名称
seaId,integer,false,,,公海Id
}
 * @returns
 */
export function getList(params) {
  params = Object.assign({ pageNum: 1, pageSize: 10 }, params)
  return request({
    url: serve + '/sea/list',
    params,
  })
}

// 获取可编辑的模版配置
export function getAddTemplate() {
  return request({
    url: serve + '/template/settings/editable',
  })
}

/**
 * 客服-手动新增线索
 * @param {*} data
{
  name: 'string', // 线索状态(0待分配，1跟进中，2已转化，3已退回)
  phone: 'string', // 线索名称
  leadsStatus: 0, // 手机号码
  seaId: 0, // 公海Id
  sex: 'string', // 性别 0 = 未知, 1 = 男, 2 = 女
  propertiesList: [
    // 自定义属性
    {
      id: 0, // 线索模板表Id
      key: 'string', // 表项名称
      keyEn: 'string', // 表项Id
      value: 'string', // 表项名称
      name: 'string', // 值
    },
  ],
},
 * @returns
 */
export function add(data) {
  data.leadsId = data.leadId
  return request({
    url: serve + '/manual/add',
    method: 'post',
    data,
  })
}

/**
 * 客服-手动新增线索列表
 * @param {*} params
{
  pageNum,integer,false,,,
  pageSize,integer,false,,,
}
 * @returns
 */
export function getAddList(params) {
  params = Object.assign({ pageNum: 1, pageSize: 10 }, params)
  return request({
    url: serve + '/manual/list',
    params,
  })
}

/**
 * 我的跟进线索列表
 * @param {*} params
{
  name,string,false,,,线索名称
  status,integer,false,,,线索状态(0待分配，1跟进中，2已转化，3已退回)
  pageNum,integer,false,,,
  pageSize,integer,false,,,
}
 * @returns
 */
export function getMyList(params) {
  params = Object.assign({ pageNum: 1, pageSize: 10 }, params)
  return request({
    url: serve + '/my/follow',
    params,
  })
}

// 线索详情 id 线索Id
export function getLeadsDeatail(id) {
  return request({
    url: serve + '/get/' + id,
    method: 'get',
  })
}

// 领取线索(员工主动领取线索) leadsId 线索Id
export function receive(leadsId) {
  return request({
    url: serve + '/receive',
    method: 'get',
    params: { leadsId },
  })
}

/**
 * 成员主动 退回线索
 * @param {*} data
{
  leadsId number  线索Id 必需
seaId number  退回公海Id 必需
remark string  退回备注 可选
}
 * @returns
 */
export function userReturn(data) {
  data.leadsId = data.leadId
  return request({
    url: serve + '/user/return',
    data,
    method: 'post',
  })
}

/**
 * 修改线索标签数据
 * @param {*} data
{
  leadsId number  线索Id 必需
labelsIds string  标签Id，逗号分隔 必需
}
 * @returns
 */
export function updateLeads(data) {
  data.leadsId = data.leadId
  return request({
    url: serve + '/update',
    data,
    method: 'put',
  })
}

/**
 * 绑定客户
 * @param {*} data
{
    "leadsId": 0, number 线索Id 必需
    "customerId": 0, number 客户Id 必需
    "externalUserid": "string" string 客户外部联系人Id 必需
}
 * @returns
 */
export function userTransfer(data) {
  data.leadsId = data.leadId
  return request({
    url: serve + '/bind/customer',
    method: 'post',
    data,
  })
}

// 获取跟进方式列表
export function getFollowMode() {
  return request({
    url: serve + '/follow/record/getFollowMode',
    method: 'get',
  })
}

/**
 * 添加跟进
 * @param {*} data
{
  weLeadsId number 线紫ld 必需
followMode integer 必需 跟进方式（获取跟进方式接口获取）
recordContent string 跟进内容 必需
cooperateTime string 必需 协作日期 yyyy-MM-dd HH:mm
attachmentList array
  attachmentType integer 必需 附件类型 0 圖片 (image)、1语音 (voice）、2视频(video），3普通文件(file)
  attachmentName string 附件名称 必需
  attachmentAddress string 附件地址 必需
cooperateUsers array
  userId number 用户id 必需
  weUserId string 用户企微ld 必需
  userName string 用户名称 必需
}
 * @returns
 */
export function addFollow(data) {
  return request({
    url: serve + '/follow/record/addFollow',
    data,
    method: 'post',
  })
}

// 获取跟进人名单
export function getFollowUpList(leadsId) {
  return request({
    url: serve + '/follow/record/getFollowUpList/' + leadsId,
    method: 'get',
  })
}

/**
 * 线索跟进记录
 * @param {*} data
{
  weLeadsId,number,false,,,线索Id
followUserId,number,false,,,跟进人表Id
pageSize,integer,false,10,,
pageNum,integer,false,1,,
}
 * @returns
 */
export function getFollowRecordList(params) {
  params = Object.assign({ pageNum: 1, pageSize: 10 }, params)
  return request({
    url: serve + '/follow/record/list',
    params,
    method: 'get',
  })
}

/**
 * 获取跟进记录详情-通过跟进记录Id
 * @param {*} id
 * @returns
 */
export function getFollowRecordDetail(id) {
  return request({
    url: serve + '/follow/record/' + id,
  })
}

/**
 * 跟进记录内容-子类列表
 * @param {*} data
{
  parentId,number,false,,,父类Id（即跟进记录内容的父类Id）
pageSize,integer,false,10,,
pageNum,integer,false,1,,
}
 * @returns
 */
export function getFollowRecordContentList(params) {
  params = Object.assign({ pageNum: 1, pageSize: 10 }, params)
  return request({
    url: serve + '/follow/record/content/list',
    method: 'get',
    params,
  })
}

/**
 * 获取回复目标列表
 * @param {*} contentId,number,false,,,内容Id
 * @returns
 */
export function getFollowRecordReplayList(contentId) {
  return request({
    url: serve + '/follow/record/replay/target',
    method: 'get',
    params: { contentId },
  })
}

/**
 * 回复跟进记录
 * @param {*} data
{
  recordId number 跟进记录Id 必需
  tasksId number 待办任务Id 必需
weUserId 回复目标（企微员工Id
replyContent string 回复内容 必需
attachmentList array
  attachmentType integer 必需 附件类型 0 圖片 (image)、1语音 (voice）、2视频(video），3普通文件(file)
  attachmentName string 附件名称 必需
  attachmentAddress string 附件地址 必需
cooperateUsers array
  userId number 用户id 必需
  weUserId string 用户企微ld 必需
  userName string 用户名称 必需
}
 * @returns
 */
export function replyFollow(data) {
  return request({
    url: serve + '/follow/record/reply',
    data,
    method: 'post',
  })
}
